import { APITable } from "../../../components/APITable";

# `@stackflow/plugin-basic-ui`

전역 스택 상태를 사용하여 활동 내에서 UI를 렌더링해요. 기본적으로 `cupertino` 및 `android` 테마를 제공해요.

## 설치

```bash npm2yarn copy
npm install @stackflow/plugin-basic-ui
```

## 사용법

어플리케이션 앱바 형태의 컴포넌트를 제공해요.
```tsx showLineNumbers filename="stackflow.ts" copy
import { stackflow } from "@stackflow/react";
import { basicUIPlugin } from "@stackflow/plugin-basic-ui";

const { Stack, useFlow } = stackflow({
  // ...
  plugins: [
    // ...
    basicUIPlugin({
      theme: "cupertino",
    }),
  ],
});
```
### `basicUIPlugin` 옵션
<APITable>
| ---- | ---- | ---- |
|      |      |      | 
| theme | `cupertino` \| `android` | 테마를 설정해요. |
| rootClassName | `string`(optional) | 루트 클래스 이름을 설정해요. |
| appBar | `AppBar`(optional) | 앱 바를 설정해요. |
</APITable>

```tsx filename="AppScreen" copy
import { AppScreen } from "@stackflow/plugin-basic-ui";

const Something = () => {
  return (
    <AppScreen appBar={{ title: "Home" }}>
      <div>Hello, World</div>
    </AppScreen>
  );
};
```
### `appBar`
<APITable>
| ---- | ---- | ---- |
|      |      |      | 
| backButton | `{ renderIcon?: () => ReactNode; ariaLabel?: string }` \| `{ render?: () => ReactNode }` | 뒤로가기 버튼을 설정해요. |
| closeButton | `{ renderIcon?: () => ReactNode; ariaLabel?; string, onClick: (e) => void; }` \| `{ render?: () => ReactNode }` | 닫기 버튼을 설정해요. |
</APITable>

모달 및 바텀시트 컴포넌트도 제공해요.
```tsx filename="Modal" copy
import { Modal } from "@stackflow/plugin-basic-ui";

const Something = () => {
  return (
    <Modal>
      <div>Hello, World</div>
    </Modal>
  );
};
```

```tsx filename="BottomSheet" copy
import { BottomSheet } from "@stackflow/plugin-basic-ui";

const Something = () => {
  return (
    <BottomSheet>
      <div>Hello, World</div>
    </BottomSheet>
  );
};
```
